/*
*	Project: Aethon
*
*	File: PhysicsManager.h
*
*	Author: Jonathan Hersack
*
*	Date: 2/15/2009
*
*   Purpose: The PhysicsManager updates and validates all of the model movements
*   and determines collisions
*/

#ifndef PHYSICSMANAGER_H_
#define PHYSICSMANAGER_H_

#include "../include/vector3f.h"
#include "../include/Model.h"

class PhysicsManager{

    
    bool hasGravity;  
	bool hasCollisions;
	
	public:
	
	PhysicsManager()
    {
		
	}//end constructor
	
	void modelCollisions();
	void terrainCollisions();
	void generateNewPosition(Model modelA, Model modelB);
	void update();
	void reactTerrainCollision(Model model);
	void reactModelCollision(Model modelA, Model modelB);
	void reactGravity(Model model);
	
	//gets and sets-----------------------------------------------------------
   	
	void setHasGravity(bool grav)
	{
         hasGravity = grav;
    }//end setHasGravity
    
	bool getHasGravity()
	{
         return hasGravity;
    }//end getHasGravity
    
   	void setHasCollsions(bool collision)
	{
         hasCollisions = collision;
    }//end setcollisions
	
	bool getHasCollisions()
	{
         return hasCollisions;
    }//end getcollisions
    
    
};//end class

#endif //PHYSICSMANAGER_H_

